package com.train.user.service;

import com.train.user.domain.SysUserFollow;
import com.baomidou.mybatisplus.extension.service.IService;

/**
* @author HP
* @description 针对表【sys_user_follow(用户关注表)】的数据库操作Service
* @createDate 2025-10-24 16:01:41
*/
public interface SysUserFollowService extends IService<SysUserFollow> {

    /**
     * 关注用户
     * 
     * @param userId 当前用户ID
     * @param followUserId 被关注用户ID
     * @return 是否成功
     */
    boolean followUser(Long userId, Long followUserId);

    /**
     * 取消关注
     * 
     * @param userId 当前用户ID
     * @param followUserId 被关注用户ID
     * @return 是否成功
     */
    boolean unfollowUser(Long userId, Long followUserId);

    /**
     * 检查是否已关注
     * 
     * @param userId 当前用户ID
     * @param followUserId 被关注用户ID
     * @return 是否已关注
     */
    boolean isFollowing(Long userId, Long followUserId);

    /**
     * 获取关注数量
     * 
     * @param userId 用户ID
     * @return 关注数量
     */
    long getFollowingCount(Long userId);

    /**
     * 获取粉丝数量
     * 
     * @param userId 用户ID
     * @return 粉丝数量
     */
    long getFollowerCount(Long userId);
}
